.TH std::wctob 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::wctob \- std::wctob

.SH Synopsis
   Defined in header <cwchar>
   int wctob( std::wint_t c );

   Narrows a wide character c if its multibyte character equivalent in the initial
   shift state is a single byte.

   This is typically possible for the characters from the ASCII character set, since
   most multibyte encodings (such as UTF-8) use single bytes to encode those
   characters.

.SH Parameters

   c - wide character to narrow

.SH Return value

   EOF if c does not represent a multibyte character with length 1 in initial shift
   state.

   Otherwise, the single-byte representation of c as unsigned char converted to int.

.SH Example


// Run this code

 #include <clocale>
 #include <cwchar>
 #include <iostream>

 void try_narrowing(wchar_t c)
 {
     int cn = std::wctob(c);
     if (cn != EOF)
         std::cout << '\\'' << int(c) << "' narrowed to " << +cn << '\\n';
     else
         std::cout << '\\'' << int(c) << "' could not be narrowed\\n";
 }

 int main()
 {
     std::setlocale(LC_ALL, "th_TH.utf8");
     std::cout << std::hex << std::showbase << "In Thai UTF-8 locale:\\n";
     try_narrowing(L'a');
     try_narrowing(L'๛');

     std::setlocale(LC_ALL, "th_TH.tis620");
     std::cout << "In Thai TIS-620 locale:\\n";
     try_narrowing(L'a');
     try_narrowing(L'๛');
 }

.SH Output:

 In Thai UTF-8 locale:
 '0x61' narrowed to 0x61
 '0xe5b' could not be narrowed
 In Thai TIS-620 locale:
 '0x61' narrowed to 0x61
 '0xe5b' narrowed to 0xfb

.SH See also

   btowc  widens a single-byte narrow character to wide character, if possible
          \fI(function)\fP
   narrow narrows characters
          \fI(public member function of std::basic_ios<CharT,Traits>)\fP
   narrow invokes do_narrow
          \fI(public member function of std::ctype<CharT>)\fP
   C documentation for
   wctob
